package com.hiultra.archive.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.hiultra.archive.domain.ArcBox;
import com.hiultra.archive.domain.ArchiveBorrowTask;
import com.hiultra.archive.domain.vo.ResultEntity;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * 借阅任务Service接口
 *
 * @author ls
 * @date 2024-07-19
 */
public interface IArchiveBorrowTaskService
{
    /**
     * 查询借阅任务
     *
     * @param taskId 借阅任务主键
     * @return 借阅任务
     */
    public ArchiveBorrowTask selectArchiveBorrowTaskByTaskId(String taskId);
    /**
     * 查询借阅任务档案盒信息
     *
     * @param taskId 借阅任务主键
     * @return 档案盒信息
     */
    public Map<String, ArcBox> selectArcBoxByTaskId(String taskId);

    /**
     * 查询借阅任务列表
     *
     * @param archiveBorrowTask 借阅任务
     * @return 借阅任务集合
     */
    public List<ArchiveBorrowTask> selectArchiveBorrowTaskList(ArchiveBorrowTask archiveBorrowTask);

    /**
     * 新增借阅任务
     *
     * @param archiveBorrowTask 借阅任务
     * @return 结果
     */
    public int insertArchiveBorrowTask(ArchiveBorrowTask archiveBorrowTask);

    /**
     * 修改借阅任务
     *
     * @param archiveBorrowTask 借阅任务
     * @return 结果
     */
    public int updateArchiveBorrowTask(ArchiveBorrowTask archiveBorrowTask);

    /**
     * 批量删除借阅任务
     *
     * @param taskIds 需要删除的借阅任务主键集合
     * @return 结果
     */
    public int deleteArchiveBorrowTaskByTaskIds(String[] taskIds);

    /**
     * 删除借阅任务信息
     *
     * @param taskId 借阅任务主键
     * @return 结果
     */
    public int deleteArchiveBorrowTaskByTaskId(String taskId);
    /**
     * 借阅任务明细修改 档案盒状态新增
     * @param taskIds
     * @return
     */
    public int editBorrowById(List<String> taskIds,String userName);

    /**
     * 借阅任务下发接口
     *
     * @param data
     * @return 结果
     */
    public ResultEntity insertIssuedArchiveBorrowTask(String data) throws ParseException;

    /**
     * 通过单号查询借阅任务
     *
     * @param borrowNo 借阅任务单号
     * @return 借阅任务
     */
    public ArchiveBorrowTask selectArchiveBorrowTaskByTaskNo(String borrowNo);

    /**
     * 档案借阅上报
     */
    public int archiveBorrowTaskResultReport(ArchiveBorrowTask archiveBorrowTask) throws JsonProcessingException;

}
